home *** CD-ROM | disk | FTP | other *** search
/ Gekikoh Dennoh Club 5 / Gekikoh Dennoh Club Vol. 5 (Japan).7z / Gekikoh Dennoh Club Vol. 5 (Japan) (Track 01).bin / games / kenka / kenka2s.lzh / vs_c.inc < prev    next >
Encoding:
Text File  |  1998-09-08  |  9.1 KB  |  449 lines

  1. *---------------------------------------
  2. *
  3. *    ébéoétÉφâéü[âhâüâCâô
  4. *
  5. *    by Shiroh Nakaya
  6. *
  7. *---------------------------------------
  8. vs_cpu:
  9.     lea.l    p1_joy_chg+2(pc),a0        * Ä⌐î╚Åæé½è╖éª
  10.     move.w    #joy_0-(p1_joy_chg+2),(a0)
  11.  
  12.     lea.l    p2_joy_chg+2(pc),a0
  13.     move.w    #joy_cpu-(p2_joy_chg+2),(a0)
  14.  
  15.     lea.l    main_loop(pc),a0
  16.     move.l    #$08380001,(a0)            * btst #1,é╠âRü[âh
  17.  
  18.     lea.l    demo_process(pc),a0
  19.     move.l    #$4e714e71,(a0)            * nopé╠âRü[âhô±é┬ò¬
  20.  
  21.     lea.l    demo_exit(pc),a0
  22.     move.w    #$4e71,(a0)            * nopé╠âRü[âh
  23.     
  24.     movea.l    a5,a1                * âLâââëâfü[â^âZâbâg
  25.     movea.l    #PCG_UP,a2
  26.     movea.l    #SP_PALETTE+32,a3
  27.     bsr    chara_set
  28.     
  29.     clr.w    round_cnt            * âëâEâôâhâJâEâôâ^ü[
  30.     clr.w    vs_cpu_score            * âXâRâAÅëè·ë╗
  31.  
  32. vs_cpu_loop:
  33.     cmpi.w    #7,round_cnt            * â{âXÉφé╚éτâüâbâZü[âWò\Ī
  34.     bne    @f
  35.  
  36.     move.w    #$0000,BG_CTRL            * âXâvâëâCâgò\Īénéeée
  37.     moveq.l    #$23,d0
  38.     moveq.l    #8,d1
  39.     moveq.l    #10,d2
  40.     trap    #15                * IOCS _B_LOCATE
  41.     moveq.l    #$21,d0
  42.     lea.l    grid_mess_1(pc),a1
  43.     trap    #15                * IOCS _B_PRINT
  44.     moveq.l    #$23,d0
  45.     moveq.l    #4,d1
  46.     moveq.l    #12,d2
  47.     trap    #15                * IOCS _B_LOCATE
  48.     moveq.l    #$21,d0
  49.     lea.l    grid_mess_2(pc),a1
  50.     trap    #15                * IOCS _B_PRINT
  51.     moveq.l    #$1f,d0
  52.     trap    #15                * IOCS _B_CUROFF
  53.  
  54.     move.w    #240-1,d1
  55. 1:
  56.     V_WAIT
  57.     bsr    joy_0
  58.     btst    #6,d0
  59.     beq    2f
  60.     dbra    d1,1b
  61. 2:
  62.  
  63.     moveq.l    #$23,d0
  64.     moveq.l    #8,d1
  65.     moveq.l    #10,d2
  66.     trap    #15                * IOCS _B_LOCATE
  67.     moveq.l    #$21,d0
  68.     lea.l    no_mess(pc),a1
  69.     trap    #15                * IOCS _B_PRINT
  70.     moveq.l    #$23,d0
  71.     moveq.l    #4,d1
  72.     moveq.l    #12,d2
  73.     trap    #15                * IOCS _B_LOCATE
  74.     moveq.l    #$21,d0
  75.     lea.l    no_mess(pc),a1
  76.     trap    #15                * IOCS _B_PRINT
  77.     moveq.l    #$1f,d0
  78.     trap    #15                * IOCS _B_CUROFF
  79.  
  80.     move.w    #$0200,BG_CTRL            * âXâvâëâCâgò\Īéném
  81. @@:
  82.     lea.l    ch_cpu(pc),a0            * ôGâLâââëé≡æIæ≡
  83.     move.w    round_cnt(pc),d0
  84.     moveq.l    #0,d1
  85.     move.b    0(a0,d0.w),d1
  86.     moveq.l    #0,d2
  87.  
  88.     lea.l    P2_DATA(a5),a1
  89.     movea.l    a5,a2
  90.     cmp.w    C_NO(a2),d1
  91.     bne    @f
  92.     cmp.w    C_COL(a2),d2
  93.     bne    @f
  94.     bchg    #0,d2
  95. @@:
  96.     move.w    d2,C_COL(a1)
  97.     move.w    d1,C_NO(a1)
  98.     move.w    #208,C_X(a1)
  99.     move.w    #128,C_Y(a1)
  100.     move.w    #1,C_LR_F(a1)
  101.     movea.l    #PCG_DOWN,a2
  102.     movea.l    #SP_PALETTE+64,a3
  103.     bsr    chara_set
  104.  
  105.     lea.l    P2_A_DATA(a5),a1
  106.     clr.w    C_M_F(a1)
  107.  
  108.     lea.l    P2_H_DATA(a5),a1
  109.     clr.w    C_M_F(a1)
  110.  
  111.     lea.l    P2_V_DATA(a5),a1
  112.     move.w    #240,C_Y(a1)
  113.  
  114.     movea.l    a5,a1
  115.     move.w    #80,C_X(a1)
  116.     move.w    #128,C_Y(a1)
  117.     clr.w    C_M_F(a1)
  118.     clr.w    C_AK_F(a1)
  119.     move.w    #1,C_AM_F(a1)
  120.     clr.w    C_HIT_C(a1)
  121.     clr.w    C_ANI_WC(a1)
  122.     clr.w    C_CNT(a1)
  123.     clr.w    C_HIT_F(a1)
  124.     move.w    #240,C_K(a1)
  125.     clr.w    C_B_JOY(a1)
  126.     clr.w    C_LR_F(a1)
  127.  
  128.     lea.l    P1_A_DATA(a5),a1
  129.     clr.w    C_M_F(a1)
  130.  
  131.     lea.l    P1_H_DATA(a5),a1
  132.     clr.w    C_M_F(a1)
  133.  
  134.     lea.l    P1_V_DATA(a5),a1
  135.     move.w    #240,C_Y(a1)
  136.  
  137.     bsr    vs_move
  138.  
  139.     lea.l    P2_DATA(a5),a1
  140.     tst.w    C_K(a1)                * ébéoétâLâââëé¬Åƒé┴é╜ÅΩìç
  141.     bpl    game_over            * âQü[âÇâIü[âoü[
  142.  
  143.     move.w    C_K(a5),d0            * âXâRâAîvÄZüi ÄcéΦæ╠ù═éαô╛ô_é╞é╡é─ë┴ÄZüj
  144.     bpl    @f                * æèæ┼é┐ôÖé┼æ╠ù═é¬â}âCâiâXé╛é┴é╜ÅΩìçé═
  145.     moveq.l    #0,d0                * éOé╔é╖éΘ
  146. @@:
  147.     add.w    stage_score(pc),d0
  148.     add.w    d0,vs_cpu_score            * âXâRâAù▌îv
  149.  
  150.     cmp.w    stage_high_score(pc),d0        * ÆPêΩâXâeü[âWânâCâXâRâAö╗ÆΦ
  151.     bcs    @f
  152.     move.w    d0,stage_high_score
  153. @@:
  154.     addq.w    #1,round_cnt
  155.     cmpi.w    #8,round_cnt
  156.     bne    vs_cpu_loop
  157.  
  158.     V_WAIT
  159.     move.w    #$0000,BG_CTRL            * âXâvâëâCâgò\Īénéeée
  160.  
  161.     movea.l    #SP_SCROLL,a2            * âGâôâfâBâôâOÅêù¥
  162.     move.w    #70-1,d0            * âXâvâëâCâgé≡ëµû╩èOé╓
  163. @@:
  164.     clr.l    (a2)+
  165.     dbra    d0,@b
  166.  
  167.     movea.l    #pcg_data+CUR+320,a1
  168.     movea.l    #PCG_UP,a2
  169.     move.w    #8-1,d0                * âOâëâtâBâbâNëBé╡éaéfâpâ^ü[âôô]æù
  170. @@:
  171.     move.l    (a1)+,(a2)+
  172.     dbra    d0,@b
  173.     movea.l    #PCG_DOWN,a3            * âOâëâtâBâbâNé≡ëBé╖
  174.     move.l    #$0200_0200,d3
  175.     move.w    #32-1,d1
  176. 1:
  177.     movea.l    a3,a4
  178.     move.w    #16-1,d2
  179. 2:
  180.     move.l    d3,(a4)+
  181.     dbra    d2,2b
  182.     adda.w    #128,a3
  183.     dbra    d1,1b
  184.  
  185.     movea.l    a5,a1
  186.     move.w    C_NO(a1),d0
  187.     add.w    d0,d0
  188.     add.w    d0,d0
  189.     lea.l    ending_graphic(pc),a0        * âGâôâfâBâôâOâOâëâtâBâbâNé≡éoébéfé╓
  190.     movea.l    0(a0,d0.w),a0
  191.     movea.l    #PCG_UP+128,a1
  192.     move.w    #512-1,d4
  193. @@:
  194.     move.l    (a0)+,(a1)+
  195.     dbra    d4,@b
  196.  
  197.     movea.l    #SP_SCROLL,a6
  198.     move.w    #96,d2
  199.     move.w    #$0101,d6            * âXâvâëâCâgé┼ò\Ī
  200.     move.w    #4-1,d3
  201. 1:
  202.     move.w    d2,d5
  203.     move.w    #4-1,d4
  204.     move.w    #112,d1
  205. 2:
  206.     move.w    d1,(a6)+
  207.     move.w    d5,(a6)+
  208.     move.w    d6,(a6)+
  209.     move.w    #3,(a6)+
  210.     addq.w    #1,d6
  211.     addi.w    #16,d1
  212.     dbra    d4,2b
  213.     addi.w    #16,d2
  214.     dbra    d3,1b
  215.  
  216.     move.w    #$0201,BG_CTRL            * éaéfò\Īéném
  217.  
  218.     move.w    vs_cpu_score(pc),d0        * ô╛ô_âfü[â^é≡ò╢ÄÜù±é╔ò╧è╖
  219.     bsr    bin2str_score            * score_mess_2é╔ò╧è╖ò╢ÄÜù±
  220.     
  221.     moveq.l    #$23,d0                * ô╛ô_âüâbâZü[âW
  222.     moveq.l    #10,d1
  223.     moveq.l    #1,d2
  224.     trap    #15                * IOCS _B_LOCATE
  225.     moveq.l    #$21,d0
  226.     lea.l    score_mess_1(pc),a1
  227.     trap    #15                * IOCS _B_PRINT
  228.     moveq.l    #$21,d0
  229.     lea.l    score_mess_2(pc),a1
  230.     trap    #15                * IOCS _B_PRINT
  231.     
  232.     moveq.l    #$23,d0                * âGâôâfâBâôâOâüâbâZü[âW
  233.     moveq.l    #5,d1
  234.     moveq.l    #10,d2
  235.     trap    #15                * IOCS _B_LOCATE
  236.     moveq.l    #$21,d0
  237.     lea.l    end_mess_1(pc),a1
  238.     trap    #15                * IOCS _B_PRINT
  239.     moveq.l    #$23,d0
  240.     moveq.l    #2,d1
  241.     moveq.l    #12,d2
  242.     trap    #15                * IOCS _B_LOCATE
  243.     moveq.l    #$21,d0
  244.     lea.l    end_mess_2(pc),a1
  245.     trap    #15                * IOCS _B_PRINT
  246.     moveq.l    #$23,d0
  247.     moveq.l    #3,d1
  248.     moveq.l    #14,d2
  249.     trap    #15                * IOCS _B_LOCATE
  250.     moveq.l    #$21,d0
  251.     lea.l    end_mess_3(pc),a1
  252.     trap    #15                * IOCS _B_PRINT
  253.     moveq.l    #$1f,d0
  254.     trap    #15                * IOCS _B_CUROFF
  255.  
  256.     st    $00e840c0            * écélé`ébâtâëâOâNâèâA
  257.     lea.l    ending_bgm_data(pc),a1
  258.     move.w    #32-1,d2            * éaéfélüiüHüjëëæt
  259. ending_bgm_loop:
  260.     move.l    (a1),d0                * âfü[â^âAâhâîâX
  261.     move.w    4(a1),d1            * ô]æùâoâCâgÉö
  262.     move.b    #1,$00e92001            * é`écéoébélÆΓÄ~
  263.     move.b    #$20,$e840c7            * écélé`ébô«ì∞ÆåÆfüiÉ╝É∞æPÄiÄüé╠Æmîbüj
  264. ending_opm_read_loop:
  265.     tst.b    OPM_DATA
  266.     bmi    ending_opm_read_loop
  267.     move.b    #$1b,OPM_REG_NO            * âNâìâbâNÉ▌ÆΦ
  268.     bset    #7,OPM_DATA
  269.     move.b    #$08,$00e9a005            * âTâôâvâèâôâOâîü[âgÉ▌ÆΦ
  270.     move.b    #$80,$00e840c4            * écélé`ébÉ▌ÆΦ
  271.     move.b    #$04,$00e840c6
  272.     move.b    #$05,$00e840e9
  273.     move.b    #$01,$00e840ed
  274.     move.b    #$05,$00e840f1
  275.     move.b    #$72,$00e840c5
  276.     st    $00e840c0
  277.     move.l    d0,$00e840cc            * ô]æùî│âAâhâîâX
  278.     move.l    #$00e92003,$00e840d4        * ô]æùɵâAâhâîâXü@é╖é╚éφé┐é`écéoébél
  279.     move.w    d1,$00e840ca            * ô]æùâTâCâY
  280.     move.b    #$88,$00e840c7            * ô]æùèJÄn
  281.     move.b    #2,$00e92001            * é`écéoébélö¡É║èJÄn
  282.     lea.l    6(a1),a1
  283.  
  284.     moveq.l    #0,d7                * âEâGâCâgâïü[âvë±Éöé≡ïüé▀éΘ
  285.     move.w    d1,d7                * éVüDéWéïégéÜì─É╢é═éPü^éUéOòbè╘é╔éUéTâoâCâg
  286.     divu.w    #65,d7
  287.  
  288. ending_bgm_wait:
  289.     V_WAIT
  290.     bsr    joy_0                * âgâèâKé¬ëƒé│éΩé╜éτÅIù╣
  291.     btst    #6,d0
  292.     beq    ending_exit
  293.     subq.w    #1,d7
  294.     bne    ending_bgm_wait
  295. ending_bgm_loop_exit:
  296.     dbra    d2,ending_bgm_loop
  297. ending_exit:
  298.     move.b    #1,$00e92001            * é`écéoébélÆΓÄ~
  299.     st    $00e840c0            * écélé`ébâtâëâOâNâèâA
  300.  
  301.     moveq.l    #$23,d0
  302.     moveq.l    #10,d1
  303.     moveq.l    #1,d2
  304.     trap    #15                * IOCS _B_LOCATE
  305.     moveq.l    #$21,d0
  306.     lea.l    no_mess(pc),a1
  307.     trap    #15                * IOCS _B_PRINT
  308.     moveq.l    #$23,d0
  309.     moveq.l    #5,d1
  310.     moveq.l    #10,d2
  311.     trap    #15                * IOCS _B_LOCATE
  312.     moveq.l    #$21,d0
  313.     lea.l    no_mess(pc),a1
  314.     trap    #15                * IOCS _B_PRINT
  315.     moveq.l    #$23,d0
  316.     moveq.l    #2,d1
  317.     moveq.l    #12,d2
  318.     trap    #15                * IOCS _B_LOCATE
  319.     moveq.l    #$21,d0
  320.     lea.l    no_mess(pc),a1
  321.     trap    #15                * IOCS _B_PRINT
  322.     moveq.l    #$23,d0
  323.     moveq.l    #3,d1
  324.     moveq.l    #14,d2
  325.     trap    #15                * IOCS _B_LOCATE
  326.     moveq.l    #$21,d0
  327.     lea.l    no_mess(pc),a1
  328.     trap    #15                * IOCS _B_PRINT
  329.     moveq.l    #$1f,d0
  330.     trap    #15                * IOCS _B_CUROFF
  331.  
  332.     move.w    vs_cpu_score(pc),d0        * ânâCâXâRâAö╗ÆΦ
  333.     cmp.w    high_score(pc),d0
  334.     bcs    @f
  335.     move.w    d0,high_score
  336.  
  337. @@:
  338.     movea.l    #SP_SCROLL,a2
  339.     move.w    #70-1,d0
  340. @@:
  341.     clr.l    (a2)+
  342.     dbra    d0,@b
  343.  
  344. game_over:
  345.     moveq.l    #$23,d0
  346.     moveq.l    #8,d1
  347.     moveq.l    #13,d2
  348.     trap    #15                * IOCS _B_LOCATE
  349.     moveq.l    #$21,d0
  350.     lea.l    over_mess(pc),a1
  351.     trap    #15                * IOCS _B_PRINT
  352.     moveq.l    #$1f,d0
  353.     trap    #15                * IOCS _B_CUROFF
  354.  
  355.     move.w    #60-1,d0
  356. @@:
  357.     V_WAIT
  358.     dbra    d0,@b
  359.  
  360.     moveq.l    #$23,d0
  361.     moveq.l    #8,d1
  362.     moveq.l    #13,d2
  363.     trap    #15                * IOCS _B_LOCATE
  364.     moveq.l    #$21,d0
  365.     lea.l    no_mess(pc),a1
  366.     trap    #15                * IOCS _B_PRINT
  367.     moveq.l    #$1f,d0
  368.     trap    #15                * IOCS _B_CUROFF
  369.  
  370.     rts
  371. *---------------------------------------
  372.     .even
  373. ending_graphic:
  374.     .dc.l    pcg_data+KAN_E,pcg_data+JOH_E,pcg_data+HAN_E,pcg_data+JUI_E
  375.     .dc.l    pcg_data+GRI_E,pcg_data+DAN_E,pcg_data+NAN_E,pcg_data+BOB_E
  376. round_cnt:
  377.     .dc.w    0
  378. vs_cpu_score:
  379.     .dc.w    0
  380. ch_cpu:
  381.     .dc.b    0,1,2,3,5,6,7,8
  382.     .even
  383. ending_bgm_data:
  384.     .dc.l    adpcm_data+KAN04
  385.     .dc.w    1612
  386.     .dc.l    adpcm_data+JOH01
  387.     .dc.w    670
  388.     .dc.l    adpcm_data+JOH01
  389.     .dc.w    670
  390.     .dc.l    adpcm_data+JOH05
  391.     .dc.w    4330
  392.     .dc.l    adpcm_data+HAN01
  393.     .dc.w    1700
  394.     .dc.l    adpcm_data+JUI01
  395.     .dc.w    1740
  396.     .dc.l    adpcm_data+JUI04
  397.     .dc.w    574
  398.     .dc.l    adpcm_data+NAN06
  399.     .dc.w    482
  400.     .dc.l    adpcm_data+KAN03
  401.     .dc.w    2176
  402.     .dc.l    adpcm_data+JOH02
  403.     .dc.w    932
  404.     .dc.l    adpcm_data+JOH02
  405.     .dc.w    932
  406.     .dc.l    adpcm_data+NAN04
  407.     .dc.w    2178
  408.     .dc.l    adpcm_data+HAN01
  409.     .dc.w    1700
  410.     .dc.l    adpcm_data+KAN01
  411.     .dc.w    534
  412.     .dc.l    adpcm_data+NAN05
  413.     .dc.w    2880
  414.     .dc.l    adpcm_data+JOH04
  415.     .dc.w    2384
  416.     .dc.l    adpcm_data+DAN03
  417.     .dc.w    292
  418.     .dc.l    adpcm_data+JUI03
  419.     .dc.w    636
  420.     .dc.l    adpcm_data+JOH03
  421.     .dc.w    2238
  422.     .dc.l    adpcm_data+JOH03
  423.     .dc.w    4476
  424.     .dc.l    adpcm_data+JUI03
  425.     .dc.w    636
  426.     .dc.l    adpcm_data+KAN06
  427.     .dc.w    1440
  428.     .dc.l    adpcm_data+KAN06
  429.     .dc.w    2880
  430.     .dc.l    adpcm_data+KAN06
  431.     .dc.w    2880
  432.     .dc.l    adpcm_data+JOH03
  433.     .dc.w    4476
  434.     .dc.l    adpcm_data+HAN01
  435.     .dc.w    3400
  436.     .dc.l    adpcm_data+JUI02
  437.     .dc.w    3192
  438.     .dc.l    adpcm_data+DAN02
  439.     .dc.w    2880
  440.     .dc.l    adpcm_data+NAN05
  441.     .dc.w    2880
  442.     .dc.l    adpcm_data+KO
  443.     .dc.w    2880
  444.     .dc.l    adpcm_data+DAN03
  445.     .dc.w    292
  446.     .dc.l    adpcm_data+NAN06
  447.     .dc.w    482
  448. *---------------------------------------
  449.